The present invention relates to electronic communications, and more particularly concerns a multiterminal digital communications system in which one of the terminal units can send data to a second terminal unit at any time, but the second can return data to the first only in response to a poll therefrom.
Digital communications increasingly employs large, often public, networks to connect terminals (sometimes called stations or nodes) at great distances from each other. Such terminals may range from small, single-user displays to communications adapters to complete computers, and even systems of computers. Although the communications protocol of the network is often transparent to the terminals, the terminals themselves must employ a common protocol to govern the exchange of data items between them.
One widely used class of protocols establishes a communications session between two terminals in which one terminal is the primary or master, and the other is a secondary or slave. Mid-range and larger computers and systems normally contain communications equipment capable of acting as either a primary or a secondary terminal. A negotiation protocol at the beginning of each session between two such computers establishes which is which. Nonprogrammable terminals ("dumb heads") are universally capable of functioning only as secondaries. Personal computers and programmable ("intelligent") terminals may function as either. However, the processor power and system resources required to implement the many functions of a primary terminal are normally too expensive and complex to justify their inclusion in such systems. Secondary-terminal functions, on the other hand, can be implemented relatively easily; in many cases, a simple serial port is the only hardware required. Thus, the world will always contain many more secondary terminals than primary.
The Normal Response Mode (NRM) of the Synchronous Data Link Communications (SDLC) protocol of the IBM Systems Network Architecture (SNA) may serve as a paradigm of the primary/secondary class of protocols. When it has data items to send to the secondary, the primary terminal or station encapsulates the data into frames according to a lower-level protocol, then sends the frames consecutively over the network, perhaps converting this frame sequence to a network protocol. The secondary terminal receives the entire sequence of frames, then responds to the primary. If it has data to return to the primary, the response is a sequence of frames carrying the data items; if not, the response is a single "receiver ready" (RR) frame. This supervisory frame provides a positive acknowledgement of the poll; it carries no data.
Because the secondary terminal can only return data to the primary in response to a poll from the primary terminal, the primary must ensure that the secondary need not wait for an unreasonable length of time to send its data. Therefore, the primary initiates a poll at a certain interval even when it has no data to send. In this case, it sends a "receiver ready" (RR) supervisory frame which contains no data, yet allows the secondary to send a frame sequence if it has any data available to send--that is, the primary gives a secondary a "response opportunity." If neither terminal has anything to say to the other, they continue to exchange RR supervisory frames until one of them comes up with some data to send.
A typical default poll interval is 0.25 sec. Yet it is not atypical to have intervals of seconds or minutes without having useful data to send between the terminals; that is, intervals between actual data can easily exceed the maximum polling interval required for heavier usage by several orders of magnitude. Such inefficiency can ring up excessive charges for connect time in a circuit-switched network or for packet numbers in a message-switched network.
Several different kinds of approaches attempt to reduce network expense resulting from this nonproductive polling.
Terminals may disconnect--or be disconnected--from the network. For example, a facility known as short-hold mode disconnects the terminals from the network after a short interval of no data, and reestablishes the connection when requested. This approach is difficult to implement, degrades response time, and may still incur excessive expenses from the large number of individual calls.
The primary terminal may vary its polling interval. Adaptive polling causes the primary to lengthen or shorten the polling interval when the secondary's data rate meets certain criteria. Such systems may increase efficiency, but still represent only the primary's guess at whether or not the secondary has data.
The terminals may employ a non-polling type of protocol. The Asynchronous Balanced Mode (ABM) of the High-level Data Link Control (HDLC) protocol, for example, effectively allows each terminal to be a primary or master station; it is similar to the primary mode of NRM, with the additional capability of each terminal to transmit to the other simultaneously. This is an elegant solution, requiring no unproductive polling at all. However, it requires each terminal to implement substantially all the functions of a primary terminal; as stated above, this is not feasible for nonprogrammable terminals, nor even for most personal computers. An ABM protocol is more difficult to implement than an NRM secondary of an SDLC protocol. Moreover, ABM requires full-duplex links to the network. Many terminals either do not have full-duplex capability, or cannot use it efficiently. Often, the communicating applications at the higher protocol levels operate in half-duplex mode anyway, thus abnegating any advantage in using full duplex at the lower levels.
Another way to eliminate polling is to construct the terminals for a network mode which does not require it. For example, CCITT X.25 networks can be accessed directly in native mode, which uses an ABM protocol. This solution, however, entails an expensive network subscription and dealing directly with the network provider, and ties each terminal to one specific physical location. It also requires more complex and expensive terminal equipment, most often beyond the processor speed and memory resources of a personal computer, and almost always beyond those feasible for a nonprogrammable terminal. But even the smallest terminal can usually run an SDLC NRM-like secondary polling protocol with no more than a commonly available serial port and a relatively small communications program.
The conventional approaches fall short of their goals in one or more particulars. This is especially true when they are implemented in connection with a widely used message-switched network protocol known as X.25 PAD ("packet assembler/disassembler"). Standard PAD networks, as defined by CCITT protocols X.28, X.29, and X.3, can carry strings of ASCII start/stop character codes through an X.25 network in the form of packets. SNA is capable of using X.25 ASCII PAD packets when operating in an asynchronous mode (SNA-A). X.25 PAD is inexpensive. It is also widely accessible, even from dial-up connections in small businesses, homes, and hotel rooms.